Conversation
kirsty-hames
approved these changes
May 21, 2026
kirsty-hames
left a comment
Contributor
There was a problem hiding this comment.
Works as expected thanks @swashbuck 👍
Testing on macOS Safari, FF and Chrome with both a new Adapt setup and updating an existing project with custom font icons in the theme.
Sanitize prompts successful too.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix #713
Update
Considerations
IcoMoon app is still in beta, so some things may change. However, the exported font files should still work here. The selection.json config will work in the old app as a fallback.
Firefox issues with font
The new IcoMoon app exports CFF2 outlines instead of TrueType. Its CFF2 encoder has a bug: for two glyphs with complex multi-subpath geometry (wechat, youku), it emits
rmovetowith extra stack operands. The CFF2 spec requires exactly 2 operands; Firefox's OpenType Sanitizer enforces this strictly and rejects the font. Chrome and Safari are lenient and were unaffected.These are the SVGs with invalid paths:


Fix for Firefox
Fixed the two affected glyphs in Illustrator:
Once fixed, I replaced them in the IcoMoon project before exporting. The exported fonts were validated with
ots-sanitize(the same OpenType Sanitizer Firefox uses). All 246 glyphs now pass.Note for future font updates
Run
ots-sanitize vanilla.woff2after every IcoMoon export before committing. If any glyph trips the encoder bug, it will reportERROR: CFF2: Failed validating CharStrings INDEX. A bug report has been filed with IcoMoon.Testing
ots-sanitize vanilla.woff2reports "File sanitized successfully"\e900–\e9f1) — no changes toicons.lessVerifying with ots-sanitize
Install once:
Mac / Linux:
Windows (Command Prompt or PowerShell):
Run against the font files (from the repo root):
Mac / Linux:
Windows:
Expected output for both:
File sanitized successfully!If a glyph is invalid, you'll see:
ERROR: CFF2: Failed validating CharStrings INDEX ERROR: CFF2: Failed to parse table Failed to sanitize file!There is nothing off-the-shelf that I could find that would identify which glyphs are invalid. I do have a local Python script that will do this, so ping me if you need it.
Update 2026-05-20: IcoMoon says that the issue has been resolved.